home *** CD-ROM | disk | FTP | other *** search
/ Hardcore Gamer Resource Kit / Hardcore Gamer Resource Kit - Disc 3.iso / screensavers / saver17.zip / VoodooLights / Sources / rgb.c < prev    next >
C/C++ Source or Header  |  1997-07-17  |  1KB  |  57 lines

  1. /*------------------------------------------------------/
  2. /                                                        /
  3. /    Copyright 1997, SΘrgio Durte <smd@di.fct.unl.pt>    /
  4. /                                                        /
  5. /------------------------------------------------------*/
  6.  
  7. #include <glide.h>
  8.  
  9. #include "defines.h"
  10. #include "mat.h"
  11. #include "rgb.h"
  12.  
  13.  
  14. static RGBA pal[4] ;
  15.  
  16.  
  17. void rgb_InitPalette()
  18. {
  19.     int i ;
  20.     for( i = 0 ; i < 256 ; i++ ) pal[i].a = 255.f ;
  21.  
  22.     pal[BLACK].r = 0.0   ; pal[BLACK].g    = 0.0 ;    pal[BLACK].b = 0.0 ;
  23.     pal[WHITE].r = 255.0 ; pal[WHITE].g    = 255.0 ; pal[WHITE].b = 255.0 ;
  24.  
  25. }
  26.  
  27.  
  28. void rgb_SetVertexColor( int i, GrVertex *v )
  29. {
  30.     v->r = pal[i].r ;
  31.     v->g = pal[i].g ;
  32.     v->b = pal[i].b ;
  33.     v->a = pal[i].a ;
  34. }
  35.  
  36. void rgb_SetRGBColor( int i, RGB *p )
  37. {
  38.     p->r = pal[i].r ;
  39.     p->g = pal[i].g ;
  40.     p->b = pal[i].b ;
  41. }
  42.  
  43. void rgb_random_color( RGBA *c )
  44. {
  45.     Float m ;
  46.  
  47.     c->r = rnd() * 255.0 ;
  48.     c->g = rnd() * 255.0 ;
  49.     c->b = rnd() * 255.0 ;
  50.     
  51.     m = 255.0 / max(c->r, max( c->g, c->b ) ) ;
  52.     c->r *= m ;
  53.     c->g *= m ;
  54.     c->b *= m ;
  55.     c->a = 255.0 ;
  56. }
  57.